gtkimageaccessible.c \
gtkimagecellaccessible.c \
gtklabelaccessible.c \
- gtklevelbaraccessible.c \
+ gtklevelbaraccessible.c \
gtklinkbuttonaccessible.c \
gtklistboxaccessible.c \
+ gtklistboxrowaccessible.c \
gtklockbuttonaccessible.c \
gtkmenuaccessible.c \
gtkmenushellaccessible.c \
gtkimageaccessible.h \
gtkimagecellaccessible.h \
gtklabelaccessible.h \
- gtklevelbaraccessible.h \
+ gtklevelbaraccessible.h \
gtklinkbuttonaccessible.h \
gtklistboxaccessible.h \
+ gtklistboxrowaccessible.h \
gtklockbuttonaccessible.h \
gtkmenuaccessible.h \
gtkmenuitemaccessible.h \
--- /dev/null
+/*
+ * Copyright (C) 2013 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#include "gtklistboxrowaccessible.h"
+
+#include "gtk/gtklistbox.h"
+
+
+G_DEFINE_TYPE (GtkListBoxRowAccessible, gtk_list_box_row_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE)
+
+static void
+gtk_list_box_row_accessible_init (GtkListBoxRowAccessible *accessible)
+{
+}
+
+static void
+gtk_list_box_row_accessible_initialize (AtkObject *obj,
+ gpointer data)
+{
+ ATK_OBJECT_CLASS (gtk_list_box_row_accessible_parent_class)->initialize (obj, data);
+
+ obj->role = ATK_ROLE_LIST_ITEM;
+}
+
+static AtkStateSet*
+gtk_list_box_row_accessible_ref_state_set (AtkObject *obj)
+{
+ AtkStateSet *state_set;
+ GtkWidget *widget, *parent;
+
+ state_set = ATK_OBJECT_CLASS (gtk_list_box_row_accessible_parent_class)->ref_state_set (obj);
+
+ widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+ if (widget != NULL)
+ {
+ parent = gtk_widget_get_parent (widget);
+ if (gtk_list_box_get_selection_mode (GTK_LIST_BOX (parent)) != GTK_SELECTION_NONE)
+ atk_state_set_add_state (state_set, ATK_STATE_SELECTABLE);
+
+ if (widget == (GtkWidget*)gtk_list_box_get_selected_row (GTK_LIST_BOX (parent)))
+ atk_state_set_add_state (state_set, ATK_STATE_SELECTED);
+ }
+
+ return state_set;
+}
+
+static void
+gtk_list_box_row_accessible_class_init (GtkListBoxRowAccessibleClass *klass)
+{
+ AtkObjectClass *object_class = ATK_OBJECT_CLASS (klass);
+
+ object_class->initialize = gtk_list_box_row_accessible_initialize;
+ object_class->ref_state_set = gtk_list_box_row_accessible_ref_state_set;
+}
--- /dev/null
+/*
+ * Copyright (C) 2013 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef __GTK_LIST_BOX_ROW_ACCESSIBLE_H__
+#define __GTK_LIST_BOX_ROW_ACCESSIBLE_H__
+
+#if !defined (__GTK_A11Y_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk-a11y.h> can be included directly."
+#endif
+
+#include <gtk/gtk.h>
+#include <gtk/a11y/gtkcontaineraccessible.h>
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_LIST_BOX_ROW_ACCESSIBLE (gtk_list_box_row_accessible_get_type ())
+#define GTK_LIST_BOX_ROW_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_LIST_BOX_ROW_ACCESSIBLE, GtkListBoxRowAccessible))
+#define GTK_LIST_BOX_ROW_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_LIST_BOX_ROW_ACCESSIBLE, GtkListBoxRowAccessibleClass))
+#define GTK_IS_LIST_BOX_ROW_ACCESSIBLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_LIST_BOX_ROW_ACCESSIBLE))
+#define GTK_IS_LIST_BOX_ROW_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_LIST_BOX_ROW_ACCESSIBLE))
+#define GTK_LIST_BOX_ROW_ACCESSIBLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_LIST_BOX_ROW_ACCESSIBLE, GtkListBoxRowAccessibleClass))
+
+typedef struct _GtkListBoxRowAccessible GtkListBoxRowAccessible;
+typedef struct _GtkListBoxRowAccessibleClass GtkListBoxRowAccessibleClass;
+
+struct _GtkListBoxRowAccessible
+{
+ GtkContainerAccessible parent;
+};
+
+struct _GtkListBoxRowAccessibleClass
+{
+ GtkContainerAccessibleClass parent_class;
+};
+
+GDK_AVAILABLE_IN_3_10
+GType gtk_list_box_row_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_LIST_BOX_ROW_ACCESSIBLE_H__ */
#include <gtk/a11y/gtklevelbaraccessible.h>
#include <gtk/a11y/gtklinkbuttonaccessible.h>
#include <gtk/a11y/gtklistboxaccessible.h>
+#include <gtk/a11y/gtklistboxrowaccessible.h>
#include <gtk/a11y/gtklockbuttonaccessible.h>
#include <gtk/a11y/gtkmenuaccessible.h>
#include <gtk/a11y/gtkmenuitemaccessible.h>
#include <string.h>
#include "a11y/gtklistboxaccessibleprivate.h"
+#include "a11y/gtklistboxrowaccessible.h"
/**
* SECTION:gtklistbox
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+ gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_LIST_BOX_ROW_ACCESSIBLE);
+
object_class->get_property = gtk_list_box_row_get_property;
object_class->set_property = gtk_list_box_row_set_property;
object_class->finalize = gtk_list_box_row_finalize;
layer: window
alpha: 1
box1
- "list box"
+ "filler"
parent: window1
index: 0
- state: enabled sensitive showing visible manages-descendants
+ state: enabled horizontal sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
- <AtkSelection>
- selected children: unnamed-GtkContainerAccessible-0
- unnamed-GtkContainerAccessible-0
- "list item"
+ listbox1
+ "list box"
parent: box1
index: 0
- state: enabled focusable sensitive showing visible
+ state: enabled sensitive showing visible manages-descendants
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
- row1
- "label"
- parent: unnamed-GtkContainerAccessible-0
+ <AtkSelection>
+ unnamed-GtkListBoxRowAccessible-0
+ "list item"
+ parent: listbox1
index: 0
- name: Row One
- state: enabled multi-line sensitive showing visible
+ state: enabled focusable sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
- <AtkText>
- text: Row One
- character count: 7
- caret offset: 0
- default attributes: bg-color: <omitted>
- bg-full-height: 0
- direction: <omitted>
- editable: false
- family-name: <omitted>
- fg-color: <omitted>
- indent: 0
- invisible: false
- justification: left
- language: <omitted>
- left-margin: 0
- pixels-above-lines: 0
- pixels-below-lines: 0
- pixels-inside-wrap: 0
- right-margin: 0
- rise: 0
- scale: 1
- size: <omitted>
- stretch: <omitted>
- strikethrough: false
- style: <omitted>
- underline: none
- variant: <omitted>
- weight: <omitted>
- wrap-mode: word
- unnamed-GtkContainerAccessible-1
- "list item"
+ row1
+ "label"
+ parent: unnamed-GtkListBoxRowAccessible-0
+ index: 0
+ name: Row One
+ state: enabled multi-line sensitive showing visible
+ toolkit: gtk
+ <AtkComponent>
+ layer: widget
+ alpha: 1
+ <AtkText>
+ text: Row One
+ character count: 7
+ caret offset: 0
+ default attributes: bg-color: <omitted>
+ bg-full-height: 0
+ direction: <omitted>
+ editable: false
+ family-name: <omitted>
+ fg-color: <omitted>
+ indent: 0
+ invisible: false
+ justification: left
+ language: <omitted>
+ left-margin: 0
+ pixels-above-lines: 0
+ pixels-below-lines: 0
+ pixels-inside-wrap: 0
+ right-margin: 0
+ rise: 0
+ scale: 1
+ size: <omitted>
+ stretch: <omitted>
+ strikethrough: false
+ style: <omitted>
+ underline: none
+ variant: <omitted>
+ weight: <omitted>
+ wrap-mode: word
+ unnamed-GtkListBoxRowAccessible-1
+ "list item"
+ parent: listbox1
+ index: 1
+ state: enabled focusable sensitive showing visible
+ toolkit: gtk
+ <AtkComponent>
+ layer: widget
+ alpha: 1
+ row2
+ "label"
+ parent: unnamed-GtkListBoxRowAccessible-1
+ index: 0
+ name: Row Two
+ state: enabled multi-line sensitive showing visible
+ toolkit: gtk
+ <AtkComponent>
+ layer: widget
+ alpha: 1
+ <AtkText>
+ text: Row Two
+ character count: 7
+ caret offset: 0
+ default attributes: bg-color: <omitted>
+ bg-full-height: 0
+ direction: <omitted>
+ editable: false
+ family-name: <omitted>
+ fg-color: <omitted>
+ indent: 0
+ invisible: false
+ justification: left
+ language: <omitted>
+ left-margin: 0
+ pixels-above-lines: 0
+ pixels-below-lines: 0
+ pixels-inside-wrap: 0
+ right-margin: 0
+ rise: 0
+ scale: 1
+ size: <omitted>
+ stretch: <omitted>
+ strikethrough: false
+ style: <omitted>
+ underline: none
+ variant: <omitted>
+ weight: <omitted>
+ wrap-mode: word
+ listbox2
+ "list box"
parent: box1
index: 1
- state: enabled focusable sensitive showing visible
+ state: enabled sensitive showing visible manages-descendants
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
- row2
- "label"
- parent: unnamed-GtkContainerAccessible-1
+ <AtkSelection>
+ unnamed-GtkListBoxRowAccessible-2
+ "list item"
+ parent: listbox2
index: 0
- name: Row Two
- state: enabled multi-line sensitive showing visible
+ state: enabled focusable selectable sensitive showing visible
toolkit: gtk
<AtkComponent>
layer: widget
alpha: 1
- <AtkText>
- text: Row Two
- character count: 7
- caret offset: 0
- default attributes: bg-color: <omitted>
- bg-full-height: 0
- direction: <omitted>
- editable: false
- family-name: <omitted>
- fg-color: <omitted>
- indent: 0
- invisible: false
- justification: left
- language: <omitted>
- left-margin: 0
- pixels-above-lines: 0
- pixels-below-lines: 0
- pixels-inside-wrap: 0
- right-margin: 0
- rise: 0
- scale: 1
- size: <omitted>
- stretch: <omitted>
- strikethrough: false
- style: <omitted>
- underline: none
- variant: <omitted>
- weight: <omitted>
- wrap-mode: word
+ row3
+ "label"
+ parent: unnamed-GtkListBoxRowAccessible-2
+ index: 0
+ name: Row Tree
+ state: enabled multi-line sensitive showing visible
+ toolkit: gtk
+ <AtkComponent>
+ layer: widget
+ alpha: 1
+ <AtkText>
+ text: Row Tree
+ character count: 8
+ caret offset: 0
+ default attributes: bg-color: <omitted>
+ bg-full-height: 0
+ direction: <omitted>
+ editable: false
+ family-name: <omitted>
+ fg-color: <omitted>
+ indent: 0
+ invisible: false
+ justification: left
+ language: <omitted>
+ left-margin: 0
+ pixels-above-lines: 0
+ pixels-below-lines: 0
+ pixels-inside-wrap: 0
+ right-margin: 0
+ rise: 0
+ scale: 1
+ size: <omitted>
+ stretch: <omitted>
+ strikethrough: false
+ style: <omitted>
+ underline: none
+ variant: <omitted>
+ weight: <omitted>
+ wrap-mode: word
<property name="can_focus">False</property>
<property name="type">popup</property>
<child>
- <object class="GtkListBox" id="box1">
+ <object class="GtkBox" id="box1">
<property name="visible">True</property>
<child>
- <object class="GtkLabel" id="row1">
+ <object class="GtkListBox" id="listbox1">
<property name="visible">True</property>
- <property name="label">Row One</property>
+ <property name="selection-mode">none</property>
+ <child>
+ <object class="GtkLabel" id="row1">
+ <property name="visible">True</property>
+ <property name="label">Row One</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkLabel" id="row2">
+ <property name="visible">True</property>
+ <property name="label">Row Two</property>
+ </object>
+ </child>
</object>
</child>
<child>
- <object class="GtkLabel" id="row2">
+ <object class="GtkListBox" id="listbox2">
<property name="visible">True</property>
- <property name="label">Row Two</property>
+ <child>
+ <object class="GtkLabel" id="row3">
+ <property name="visible">True</property>
+ <property name="label">Row Tree</property>
+ </object>
+ </child>
</object>
</child>
</object>